home *** CD-ROM | disk | FTP | other *** search
- //
- // DayWindow.m
- // Copyright (c) 1991 by Jiro Nakamura
- // All rights reserved
- //
- // by Jiro Nakamura (jiro@shaman.com)
- //
- // RCS Information
- // Revision Number-> $Revision: 1.3 $
- // Last Revised-> $Date: 91/02/17 22:03:21 $
- //
- static char rcsid[] = "$Id: WeekWindow.m,v 1.3 91/02/17 22:03:21 jiro Exp Locker: jiro $";
-
- #import "Global.h"
- #import "DayText.h"
- #import "Event.h"
- #import "cass.h" // for TODAYICON
- #import "calendar.h" // for ascMyDate()
- #import "Cassandra.h" // For NXApp
- #import <appkit/ScrollView.h>
- #import <appkit/TextField.h>
- #import <appkit/PopUpList.h>
- #import <appkit/Matrix.h>
- #import "DayWindow.h"
-
- #import <sys/file.h>
- #import <libc.h>
- #import <strings.h>
-
-
-
- // The minimum dimensions of the day window
- #define MIN_WIDTH 870.0
- #define MIN_HEIGHT 100.0
-
-
- @implementation DayWindow
-
- - open:sender
- {
- static alreadyInited = FALSE;
- NXRect tmpFrame;
-
- if( !alreadyInited)
- {
- alreadyInited = TRUE;
- // [self placeWindow: [[NXApp global] dayFrame]];
- today = *timeNow();
- today.tm_hour = today.tm_min = today.tm_sec = 0;
- fixTmStructure( &today);
-
- #ifdef DEBUG
- fprintf(stderr,"Today is: %s",
- ascMyDate(&today));
- #endif
- priorityCutOff = [[NXApp global] lowPriority];
- [self setDelegate: self];
-
- [[eventsScroll docView] getFrame: &tmpFrame];
- eventsText = [[DayText alloc] initFrame:
- &tmpFrame];
- [eventsScroll setDocView: eventsText];
- [eventsText setMonoFont: FALSE];
- [eventsText setEditable: YES];
- [eventsText setBackgroundGray: NX_WHITE];
-
- // [self setMiniwindowIcon: DAYICON];
-
- viewPopUp = [PopUpList new];
- [viewPopUp addItem: "View All"];
- [viewPopUp addItem: "View Mid~High"];
- [viewPopUp addItem: "View Only High"];
- [[viewPopUp itemList] selectCellAt:1:0];
- NXAttachPopUpList(viewPopUpButton, viewPopUp);
- }
- [self makeKeyAndOrderFront: self];
- [self update]; // this will cause an update
- return self;
- }
-
- - save
- {
- // This window shouldn't save itself.
- return nil;
- }
-
- - close
- {
- // [[NXApp global] saveThisWindowPosition: DEFAULTDAYFRAME : self];
- [super close];
- miniaturized = FALSE;
- return self;
- }
-
- - update
- {
- static char temp[20];
- extern const char *shortMonths[12], *shortWeekDays[7];
-
-
- if( miniaturized || ![self isVisible])
- return self;
-
- sprintf(temp, "%s %s %2d, %d",
- shortWeekDays[today.tm_wday],
- shortMonths[today.tm_mon],
- today.tm_mday,today.tm_year + 1900);
- [dayTextField setStringValue: temp];
-
- [eventsText setDate: &today andPriority: priorityCutOff];
- [eventsText updateText];
-
-
-
-
- return self;
- }
-
- - dayBefore:sender
- {
- today.tm_mday -= 1;
- [self update];
- return self;
- }
-
- - dayAfter:sender
- {
- today.tm_mday += 1;
- [self update];
- return self;
- }
-
- - dayNow:sender
- {
- today = *timeNow();
- today.tm_hour = today.tm_min = today.tm_sec = 0;
- fixTmStructure( &today);
- [self update];
- return self;
- }
-
-
- - viewPopUpChanged:sender
- {
- switch( [[viewPopUp itemList] selectedRow])
- {
- case 2:
- priorityCutOff = [[NXApp global] highPriority];
- break;
- case 1:
- priorityCutOff = [[NXApp global] lowPriority];
- break;
- case 0:
- default:
- priorityCutOff = 0;
- break;
- }
- #ifdef DEBUG
- fprintf(stderr, "Priority changed to %d.... (tag = %d)\n",
- priorityCutOff, [[viewPopUp itemList] selectedRow]);
- #endif
- [self update];
- return self;
- }
-
- - windowDidMiniaturize: sender
- {
- #ifdef DEBUG
- fprintf(stderr,"Today did miniaturize\n");
- #endif
-
- miniaturized = TRUE;
- return self;
- }
-
- - windowDidDeminiaturize: sender
- {
- #ifdef DEBUG
- fprintf(stderr,"Today did deminiaturize\n");
- #endif
-
- miniaturized = FALSE;
- [self update];
- return self;
- }
-
- - defaultsDidChange: sender
- {
- return [eventsText defaultsDidChange: sender];
- }
-
-
-
- - windowWillResize: (id) sender toSize: (NXSize *) size
- {
- #ifdef DEBUG
- fprintf(stderr,"Window would have resized to %f x %f.\n",
- size->width, size->height);
- #endif
-
- size->width = MIN_WIDTH; // can't change the width, ever
- if( size->height < MIN_HEIGHT)
- size->height = MIN_HEIGHT;
-
- #ifdef DEBUG
- fprintf(stderr,"Window will resize to %f x %f.\n",
- size->width, size->height);
- #endif
- return self;
- }
- @end
-